package main

import (
	"flag"
	"fmt"
	"json_format/formatter"
	"json_format/g"
)

func main() {
	filenamePtr := flag.String("f", "", "指定文件名，大需要可能需要较长时间，请耐心等待")
	indentPtr := flag.String("indent", "    ", "缩进字符，默认4个空格")
	verbosePtr := flag.Bool("v", false, "显示详细信息")
	versionPtr := flag.Bool("V", false, "显示版本号")
	flag.Parse()
	if *versionPtr {
		fmt.Println("大JSON文件格式化工具" + g.Version)
		fmt.Println("  Version   : " + g.Version)
		fmt.Println("  Git Commit: " + g.GitCommitId)
		fmt.Println("  Build Time: " + g.BuildTime)
		fmt.Println("  Compiling : " + g.GoVersion)
		return
	}
	if *filenamePtr == "" {
		fmt.Println("必须指定一个有效文件名才能进行格式化操作")
	}

	if jsonFormatter, err := formatter.NewLargeJsonFormatter(*filenamePtr, *indentPtr, *verbosePtr); err != nil {
		fmt.Println(err)
	} else {
		jsonFormatter.Format()
	}
}
